/*******************************************************************************
* Copyright (c) 2015 Jeff Martin.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser General Public
* License v3.0 which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl.html
*
* Contributors:
* Jeff Martin - initial API and implementation
******************************************************************************/
package cuchaz.enigma;
import static cuchaz.enigma.TestEntryFactory.newClass;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
import java.util.jar.JarFile;
import org.junit.BeforeClass;
import org.junit.Test;
import cuchaz.enigma.analysis.JarIndex;
public class TestDeobfed
{
private static JarFile m_jar;
private static JarIndex m_index;
@BeforeClass
public static void beforeClass() throws Exception
{
m_jar = new JarFile("build/testTranslation.deobf.jar");
m_index = new JarIndex();
m_index.indexJar(m_jar, true);
}
@Test
public void obfEntries()
{
assertThat(
m_index.getObfClassEntries(),
containsInAnyOrder(newClass("cuchaz/enigma/inputs/Keep"),
newClass("none/a"), newClass("none/b"), newClass("none/c"),
newClass("none/d"), newClass("none/d$1"), newClass("none/e"),
newClass("none/f"), newClass("none/g"), newClass("none/g$a"),
newClass("none/g$a$a"), newClass("none/g$b"),
newClass("none/g$b$a"), newClass("none/h"),
newClass("none/h$a"), newClass("none/h$a$a"),
newClass("none/h$b"), newClass("none/h$b$a"),
newClass("none/h$b$a$a"), newClass("none/h$b$a$b"),
newClass("none/i"), newClass("none/i$a"), newClass("none/i$b")));
}
@Test
public void decompile() throws Exception
{
Deobfuscator deobfuscator = new Deobfuscator(m_jar);
deobfuscator.getSourceTree("none/a");
deobfuscator.getSourceTree("none/b");
deobfuscator.getSourceTree("none/c");
deobfuscator.getSourceTree("none/d");
deobfuscator.getSourceTree("none/d$1");
deobfuscator.getSourceTree("none/e");
deobfuscator.getSourceTree("none/f");
deobfuscator.getSourceTree("none/g");
deobfuscator.getSourceTree("none/g$a");
deobfuscator.getSourceTree("none/g$a$a");
deobfuscator.getSourceTree("none/g$b");
deobfuscator.getSourceTree("none/g$b$a");
deobfuscator.getSourceTree("none/h");
deobfuscator.getSourceTree("none/h$a");
deobfuscator.getSourceTree("none/h$a$a");
deobfuscator.getSourceTree("none/h$b");
deobfuscator.getSourceTree("none/h$b$a");
deobfuscator.getSourceTree("none/h$b$a$a");
deobfuscator.getSourceTree("none/h$b$a$b");
deobfuscator.getSourceTree("none/i");
deobfuscator.getSourceTree("none/i$a");
deobfuscator.getSourceTree("none/i$b");
}
}